﻿using Renci.Data.Interop.OpenGIS.Gml_32;

namespace Renci.Data.Interop.OpenGIS.Iso.tc211_2005.gss
{
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.isotc211.org/2005/gss")]
    public class GM_Object_PropertyType
    {
        /// <remarks/>
        //[System.Xml.Serialization.XmlElementAttribute("AbstractGeometry", Namespace = "http://www.opengis.net/gml/3.2")]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractGeometricAggregate", Type = typeof(AbstractGeometricAggregateType))]
        [System.Xml.Serialization.XmlElementAttribute("MultiGeometry", Type = typeof(MultiGeometryType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("MultiPoint", Type = typeof(MultiPointType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("MultiCurve", Type = typeof(MultiCurveType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("MultiSurface", Type = typeof(MultiSurfaceType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("MultiSolid", Type = typeof(MultiSolidType), Namespace = "http://www.opengis.net/gml/3.2")]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractGeometricPrimitive", Type = typeof(AbstractGeometricPrimitiveType))]
        [System.Xml.Serialization.XmlElementAttribute("Point", Type = typeof(PointType), Namespace = "http://www.opengis.net/gml/3.2")]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractCurve", Type = typeof(AbstractCurveType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("LineString", Type = typeof(LineStringType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("CompositeCurve", Type = typeof(CompositeCurveType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("Curve", Type = typeof(CurveType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("OrientableCurve", Type = typeof(OrientableCurveType), Namespace = "http://www.opengis.net/gml/3.2")]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractSurface", Type = typeof(AbstractSurfaceType))]
        [System.Xml.Serialization.XmlElementAttribute("Polygon", Type = typeof(PolygonType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("CompositeSurface", Type = typeof(CompositeSurfaceType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("Surface", Type = typeof(SurfaceType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("OrientableSurface", Type = typeof(OrientableSurfaceType), Namespace = "http://www.opengis.net/gml/3.2")]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractSolid", Type = typeof(AbstractSolidType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("CompositeSolid", Type = typeof(CompositeSolidType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("Solid", Type = typeof(SolidType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("GeometricComplex", Type = typeof(GeometricComplexType), Namespace = "http://www.opengis.net/gml/3.2")]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractImplicitGeometry", Type = typeof(AbstractGeometryType))]
        [System.Xml.Serialization.XmlElementAttribute("Grid", Type = typeof(GridType), Namespace = "http://www.opengis.net/gml/3.2")]
        public AbstractGeometryType Geometry { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("uuidref")]
        public string Uuidref { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("nilReason", Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.isotc211.org/2005/gco")]
        public string NilReason { get; set; }
    }
}
